<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>

// 构造forEach()函数：

    // function array_forEach(arr,fn){
    //     for(var i=0;i<arr.length;i++){
    //         if(i in arr)fn(arr[i],i,arr);
    //     }
        
    // }

    // var arr=[2,4,6,8];
    // array_forEach(arr,function(item,index,arr){
    //     console.log(item,index,arr);
    // })
// 判断i是否在数组内，再执行函数






// 构造map函数：
 
map中回调函数里使用return可以将需要的每个元素数据返回给新数组对应的元素
    function array_map(arr,fn){
        var arr1=[];
        for(var i=0;i<arr.length;i++){
            if(i in arr) arr1[i]=fn(arr[i],i,arr);
        }
        return arr1;
    }


    var arr=[2,4,6,8];
    var arr1=array_forEach(arr,function(item,index,arr){
        return item+10;
    })
    console.log(arr1);
        


    // 下面这个代码放在了arr1中，这个方便理解
function fn1(item,index,arr){
    return item+10
}






区别
1-map返回一个新数组
需建立一个新数组












    </script>
</body>
</html>